package edu.whut;

import java.math.BigDecimal;

/*
    BigDecimal类：解决小数运算中，出现的不精确问题
    1.创建对象
         BigDecimal bd1 = new BigDecimal("0.1");
         BigDecimal bd3 = BigDecimal.valueOf(0.1);
    2.常用成员方法
        add  加法
        subtract 减法
        multiple  乘法
        divide  除法
        bd1.divide(bd2,保留几位，舍入模式)；
            舍入模式：RoundingMode.HALF_UP 四舍五入
                     RoundingMode.UP  进位
                     RoundingMode.DOWN  去尾巴
     3.转换为double类型：doubleValue方法

 */
public class BigDecimalDemo {
    public static void main(String[] args) {
      double a = 0.1;
      double b = 0.2;
      System.out.println(a+b);

      BigDecimal bd1 = new BigDecimal("0.1");
      BigDecimal bd2 = new BigDecimal("0.2");
      System.out.println(bd1.add(bd2));

        BigDecimal bd3 = BigDecimal.valueOf(0.1);
        BigDecimal bd4 = BigDecimal.valueOf(0.2);
        System.out.println(bd1.add(bd2));

        BigDecimal bd5 = BigDecimal.valueOf(10);
        BigDecimal bd6 = BigDecimal.valueOf(3);
        BigDecimal result  = bd5.divide(bd6,3,BigDecimal.ROUND_HALF_UP);
        double v = result.doubleValue();
        Math.abs(v);
        System.out.println(v);
    }
}
